// https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string/
package greedy

// 使用栈解决问题
func removeDuplicates(s string) string {
	stack := make([]byte, 0)
	for i := 0; i < len(s); i++ {
		if len(stack) == 0 || stack[len(stack)-1] != s[i] {
			stack = append(stack, s[i])
			continue
		}
		stack = stack[:len(stack)-1]
	}
	return string(stack)
}

// 还有一种比较好的解法， 双指针， 不行使用栈，在源字符串上进行修改
